//package com.wst.system.config.sharding.config.ds;
//
//import com.wst.system.util.SnowFlakeUtil;
//import io.shardingsphere.api.algorithm.sharding.ListShardingValue;
//import io.shardingsphere.api.algorithm.sharding.ShardingValue;
//import io.shardingsphere.api.algorithm.sharding.complex.ComplexKeysShardingAlgorithm;
//import lombok.extern.slf4j.Slf4j;
//
//
//import java.text.SimpleDateFormat;
//import java.util.Collection;
//import java.util.Date;
//import java.util.HashSet;
//
//@Slf4j
//public class DsTableShardConfig implements ComplexKeysShardingAlgorithm {
//
//
//
//      @Override
//    public Collection<String> doSharding(Collection<String> availableTargetNames, Collection<ShardingValue> shardingValues) {
//        Collection<String> routTables = new HashSet<>();
//        Collection id=getColumnValue(shardingValues,"id");
//        Collection createdate=getColumnValue(shardingValues, "createdate");
//        for (String targetName : availableTargetNames) {
//            log.info("dataTable:{}",targetName);
//        }
//        if(id!=null){
//            Object[] objects=id.toArray();
//            if(objects.length>0){
//                Long val=Long.parseLong(String.valueOf(objects[0]));
//                if(val % 2 ==0){
//                    routTables.add("sharding_ds_02");
//                    log.info("走的是id路由,选取的表为:{}","sharding_ds_02");
//                }else {
//                    routTables.add("sharding_ds_01");
//                    log.info("走的是id路由,选取的表为:{}","sharding_ds_01");
//                }
//                return routTables;
//            }
//        }
//        return routTables;
//    }
//
//
//    private Collection getColumnValue(Collection<ShardingValue> shardingValues,String key){
//        if(shardingValues == null){
//            return null;
//        }
//        for (ShardingValue shardingValue : shardingValues) {
//            if(shardingValue instanceof ListShardingValue){
//                ListShardingValue listShardingValue=(ListShardingValue) shardingValue;
//                if(listShardingValue.getColumnName().equals(key)){
//                    return listShardingValue.getValues();
//                }
//            }
//        }
//        return null;
//    }
//}
